home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 7 / Amiga Format AFCD07 (Dec 1996, Issue 91).iso / serious / shareware / programming / muirexx2.1 / demos / muirexxbuild / ask_object.rexx < prev    next >
OS/2 REXX Batch file  |  1996-08-24  |  32KB  |  963 lines

  1. /* */
  2. options results
  3. parse arg '='obj
  4.  
  5. address BUILD
  6.  
  7. window ID SET CLOSE
  8.  
  9. parse var obj gobj .
  10. gobj = strip(gobj)
  11. select
  12.     when index(gobj,'end') = 1 then nop
  13.     when index(gobj,'window') = 1 then call open_ask_window(obj)
  14.     when index(gobj,'group') = 1 then call open_ask_group(obj)
  15.     when index(gobj,'menu') = 1 then call open_ask_menu(obj)
  16.     when index(gobj,'do') = 1 then call open_ask_do(obj)
  17.     when index(gobj,'item') = 1 then call open_ask_item(obj)
  18.     when index(gobj,'space') = 1 then call open_ask_space(obj)
  19.     when index(gobj,'label') = 1 then call open_ask_label(obj)
  20.     when index(gobj,'view') = 1 then call open_ask_view(obj)
  21.     when index(gobj,'gauge') = 1 then call open_ask_gauge(obj)
  22.     when index(gobj,'meter') = 1 then call open_ask_gauge(obj)
  23.     when index(gobj,'button') = 1 then call open_ask_gadget(obj)
  24.     when index(gobj,'text') = 1 then call open_ask_gadget(obj)
  25.     when index(gobj,'switch') = 1 then call open_ask_gadget(obj)
  26.     when index(gobj,'image') = 1 then call open_ask_image(obj)
  27.     when index(gobj,'check') = 1 then call open_ask_image(obj)
  28.     when index(gobj,'cycle') = 1 then call open_ask_cycle(obj)
  29.     when index(gobj,'radio') = 1 then call open_ask_cycle(obj)
  30.     when index(gobj,'string') = 1 then call open_ask_string(obj)
  31.     when index(gobj,'popasl') = 1 then call open_ask_string(obj)
  32.     when index(gobj,'poplist') = 1 then call open_ask_string(obj)
  33.     when index(gobj,'slider') = 1 then call open_ask_slider(obj)
  34.     when index(gobj,'popslider') = 1 then call open_ask_slider(obj)
  35.     when index(gobj,'knob') = 1 then call open_ask_slider(obj)
  36.     when index(gobj,'dirlist') = 1 then call open_ask_dirlist(obj)
  37.     when index(gobj,'volumelist') = 1 then call open_ask_volumelist(obj)
  38.     when index(gobj,'list') = 1 then call open_ask_list(obj)
  39.     when index(gobj,'object') = 1 then call open_ask_object(obj)
  40.     when index(gobj,'application') = 1 then call open_ask_application(obj)
  41.     when index(gobj,'method') = 1 then call open_ask_method(obj)
  42.     otherwise call open_ask_generic(obj)
  43. end
  44.  
  45. exit
  46.  
  47. open_ask_window: procedure
  48. parse arg line
  49.  
  50. parse var line obj args
  51.  
  52. gobj = insert(obj,'',pos(obj,line)-1)
  53. if index(strip(args),'ID') = 1 then parse var args 'ID 'gid args
  54. else gid = ''
  55. if index(args,'COMMAND') > 0 then parse var args 'COMMAND """'gcommand'"""' args
  56. else gcommand = ''
  57. parse var args 'PORT 'gport .,'TITLE """'glabel'"""' .,'ATTRS 'gattrs
  58.  
  59. window ID SET TITLE '"Window Object"' COMMAND '"build:set_object ['gobj']"'
  60.     group REGISTER LABELS '"Options,Attributes"'
  61.         group HORIZ
  62.             group
  63.                 label DOUBLE '"ID:"'
  64.                 label DOUBLE '"Command:"'
  65.                 label DOUBLE '"Port:"'
  66.                 label DOUBLE '"Title:"'
  67.             endgroup
  68.             group
  69.                 string ID S1 CONTENT gid
  70.                 popasl ID S2 CONTENT gcommand
  71.                 string ID S3 CONTENT gport
  72.                 string ID S4 CONTENT glabel
  73.             endgroup
  74.         endgroup
  75.         call attrsgroup
  76.     endgroup
  77.     call okgroup gobj
  78. endwindow
  79. call attrscomm gattrs
  80. return
  81.  
  82. open_ask_group: procedure
  83. parse arg line
  84.  
  85. Selected =                        0x8042654b /* V4  isg BOOL              */
  86. Weight =                          0x80421d1f /* V4  i.. WORD              */
  87. TRUE = 1
  88. FALSE = 0
  89.  
  90. parse var line obj args
  91.  
  92. gobj = insert(obj,'',pos(obj,line)-1)
  93. if index(strip(args),'ID') = 1 then parse var args 'ID 'gid args
  94. else gid = ''
  95. if index(args,'COMMAND') > 0 then parse var args 'COMMAND """'gcommand'"""' args
  96. else gcommand = ''
  97. parse var args 'PORT 'gport .,'LABELS """'glabel'"""' .,'ATTRS 'gattrs
  98.  
  99. window ID SET TITLE '"Group Object"' COMMAND '"build:set_object ['gobj']"'
  100.     group REGISTER LABELS '"Options,Attributes"'
  101.         group HORIZ
  102.             group
  103.                 label DOUBLE '"ID:"'
  104.                 label DOUBLE '"Command:"'
  105.                 label DOUBLE '"Port:"'
  106.                 label DOUBLE '"Labels:"'
  107.                 label SINGLE '"Frame:"'
  108.                 label SINGLE '"Horiz:"'
  109.                 label SINGLE '"Type:"'
  110.             endgroup
  111.             group
  112.                 string ID S1 CONTENT gid
  113.                 popasl ID S2 CONTENT gcommand
  114.                 string ID S3 CONTENT gport
  115.                 string ID S4 CONTENT glabel
  116.                 group HORIZ
  117.                     group
  118.                         if index(args,'FRAME') ~= 0 then check ID C1 ATTRS Selected TRUE
  119.                         else check ID C1 ATTRS Selected FALSE
  120.                         if index(args,'HORIZ') ~= 0 then check ID C2 ATTRS Selected TRUE
  121.                         else check ID C2 ATTRS Selected FALSE
  122.                     endgroup
  123.                     space HORIZ
  124.                 endgroup
  125.                 cycle ID L1 LABELS '"NORMAL,REGISTER,VIRTUAL,SCROLL"' ATTRS Weight 0
  126.             endgroup
  127.         endgroup
  128.         call attrsgroup
  129.     endgroup
  130.     call okgroup gobj
  131. endwindow
  132. if index(line,'REGISTER') ~= 0 then cycle ID L1 LABEL '"REGISTER"'
  133. if index(line,'VIRTUAL') ~= 0 then cycle ID L1 LABEL '"VIRTUAL"'
  134. if index(line,'SCROLL') ~= 0 then cycle ID L1 LABEL '"SCROLL"'
  135. call attrscomm gattrs
  136. return
  137.  
  138. open_ask_menu: procedure
  139. parse arg line
  140.  
  141. parse var line obj .,'ID 'gid .,'LABEL """'glabel'"""' .,'ATTRS 'gattrs
  142.  
  143. gobj = insert(obj,'',pos(obj,line)-1)
  144. window ID SET TITLE '"Menu Object"' COMMAND '"build:set_object ['gobj']"'
  145.     group REGISTER LABELS '"Options,Attributes"'
  146.         group HORIZ
  147.             group
  148.                 label DOUBLE '"ID:"'
  149.                 label DOUBLE '"Label:"'
  150.             endgroup
  151.             group
  152.                 string ID S1 CONTENT gid
  153.                 string ID S2 CONTENT glabel
  154.             endgroup
  155.         endgroup
  156.         call attrsgroup
  157.     endgroup
  158.     call okgroup gobj
  159. endwindow
  160. call attrscomm gattrs
  161. return
  162.  
  163. open_ask_do: procedure
  164. parse arg line
  165.  
  166. CycleChain =                      0x80421ce7 /* V11 isg LONG              */
  167. Frame =                           0x8042ac64 /* V4  i.. LONG              */
  168.  
  169. Frame_None = 0
  170.  
  171. parse var line obj counter' = 'begin' to 'finish
  172.  
  173. gobj = insert(obj,'',pos(obj,line)-1)
  174. window ID SET TITLE '"Do Loop"' COMMAND '"build:set_object ['gobj']"'
  175.     group HORIZ
  176.         space HORIZ
  177.         group HORIZ 'FRAME'
  178.             label DOUBLE 'do'
  179.             string ID P1 ATTRS CycleChain 1 Frame Frame_None CONTENT counter
  180.             label DOUBLE '"="'
  181.             string ID P2 ATTRS CycleChain 1 Frame Frame_None CONTENT begin
  182.             label DOUBLE 'to'
  183.             string ID P3 ATTRS CycleChain 1 Frame Frame_None CONTENT finish
  184.         endgroup
  185.         space HORIZ
  186.     endgroup
  187.     call okgroup gobj
  188. endwindow
  189. return
  190.  
  191. open_ask_item: procedure
  192. parse arg line
  193.  
  194. parse var line obj args
  195.  
  196. gobj = insert(obj,'',pos(obj,line)-1)
  197. if index(strip(args),'ID') = 1 then parse var args 'ID 'gid args
  198. else gid = ''
  199. if index(args,'COMMAND') > 0 then parse var args 'COMMAND """'gcommand'"""' args
  200. else gcommand = ''
  201. parse var args 'PORT 'gport .,'LABEL """'glabel'"""' .,'ATTRS 'gattrs
  202.  
  203. window ID SET TITLE '"Item Object"' COMMAND '"build:set_object ['gobj']"'
  204.     group REGISTER LABELS '"Options,Attributes"'
  205.         group HORIZ
  206.             group
  207.                 label DOUBLE '"ID:"'
  208.                 label DOUBLE '"Command:"'
  209.                 label DOUBLE '"Port:"'
  210.                 label DOUBLE '"Label:"'
  211.             endgroup
  212.             group
  213.                 string ID S1 CONTENT gid
  214.                 popasl ID S2 CONTENT gcommand
  215.                 string ID S3 CONTENT gport
  216.                 string ID S4 CONTENT glabel
  217.             endgroup
  218.         endgroup
  219.         call attrsgroup
  220.     endgroup
  221.     call okgroup gobj
  222. endwindow
  223. call attrscomm gattrs
  224. return
  225.  
  226. open_ask_space: procedure
  227. parse arg line
  228.  
  229. Selected =                        0x8042654b /* V4  isg BOOL              */
  230. TRUE = 1
  231. FALSE = 0
  232.  
  233. parse var line obj opt
  234.  
  235. gobj = insert(obj,'',pos(obj,line)-1)
  236. window ID SET TITLE '"Space Object"' COMMAND '"build:set_object ['gobj']"'
  237.     group HORIZ
  238.         group
  239.             label SINGLE '"Bar:"'
  240.             label SINGLE '"Horiz:"'
  241.             label DOUBLE '"Value:"'
  242.         endgroup
  243.         group
  244.             group HORIZ
  245.                 group
  246.                     if index(opt,'BAR') ~= 0 then do
  247.                         check ID C1 ATTRS Selected TRUE
  248.                         opt = substr(opt,index(opt,'BAR')+4)
  249.                     end
  250.                     else check ID C1 ATTRS Selected FALSE
  251.                     if index(opt,'HORIZ') ~= 0 then do
  252.                         check ID C2 ATTRS Selected TRUE
  253.                         opt = substr(opt,index(opt,'HORIZ')+6)
  254.                     end
  255.                     else check ID C2 ATTRS Selected FALSE
  256.                 endgroup
  257.                 space HORIZ
  258.             endgroup
  259.             string ID S1 CONTENT opt
  260.         endgroup
  261.     endgroup
  262.     call okgroup gobj
  263. endwindow
  264. return
  265.  
  266. open_ask_label: procedure
  267. parse arg line
  268.  
  269. Selected =                        0x8042654b /* V4  isg BOOL              */
  270. TRUE = 1
  271. FALSE = 0
  272.  
  273. parse var line obj .,'"""'glabel'"""'
  274.  
  275. gobj = insert(obj,'',pos(obj,line)-1)
  276. window ID SET TITLE '"Label Object"' COMMAND '"build:set_object ['gobj']"'
  277.     group HORIZ
  278.         group
  279.             label SINGLE '"Left:"'
  280.             label SINGLE '"Center:"'
  281.             label SINGLE '"Single:"'
  282.             label SINGLE '"Double:"'
  283.             label DOUBLE '"Label:"'
  284.         endgroup
  285.         group
  286.             group HORIZ
  287.                 group
  288.                     if index(line,'LEFT') ~= 0 then check ID C1 ATTRS Selected TRUE
  289.                     else check ID C1 ATTRS Selected FALSE
  290.                     if index(line,'CENTER') ~= 0 then check ID C2 ATTRS Selected TRUE
  291.                     else check ID C2 ATTRS Selected FALSE
  292.                     if index(line,'SINGLE') ~= 0 then check ID C3 ATTRS Selected TRUE
  293.                     else check ID C3 ATTRS Selected FALSE
  294.                     if index(line,'DOUBLE') ~= 0 then check ID C4 ATTRS Selected TRUE
  295.                     else check ID C4 ATTRS Selected FALSE
  296.                 endgroup
  297.                 space HORIZ
  298.             endgroup
  299.             string ID S1 CONTENT glabel
  300.         endgroup
  301.     endgroup
  302.     call okgroup gobj
  303. endwindow
  304. return
  305.  
  306. open_ask_view: procedure
  307. parse arg line
  308.  
  309. parse var line obj .,'ID 'gid .,'HELP """'ghelp'"""' .,'NODE 'gnode .,'FILE """'gfile'"""' .,'ATTRS 'gattrs 'STRING' .,'STRING "'gstring'"'
  310.  
  311. gobj = insert(obj,'',pos(obj,line)-1)
  312. window ID SET TITLE '"View Object"' COMMAND '"build:set_object ['gobj']"'
  313.     group REGISTER LABELS '"Options,Attributes"'
  314.         group HORIZ
  315.             group
  316.                 label DOUBLE '"ID:"'
  317.                 label DOUBLE '"Help:"'
  318.                 label DOUBLE '"Node:"'
  319.                 label DOUBLE '"File:"'
  320.                 label DOUBLE '"String:"'
  321.             endgroup
  322.             group
  323.                 string ID S1 CONTENT gid
  324.                 string ID S2 CONTENT ghelp
  325.                 string ID S3 CONTENT gnode
  326.                 popasl ID S4 CONTENT gfile
  327.                 string ID S5 CONTENT gstring
  328.             endgroup
  329.         endgroup
  330.         call attrsgroup
  331.     endgroup
  332.     call okgroup gobj
  333. endwindow
  334. call attrscomm gattrs
  335. return
  336.  
  337. open_ask_gauge: procedure
  338. parse arg line
  339.  
  340. parse var line obj .,'ID 'gid .,'HELP """'ghelp'"""' .,'NODE 'gnode .,'LABEL """'glabel'"""' .,'ATTRS 'gattrs
  341.  
  342. gobj = insert(obj,'',pos(obj,line)-1)
  343. window ID SET TITLE '"Object"' COMMAND '"build:set_object ['gobj']"'
  344.     group REGISTER LABELS '"Options,Attributes"'
  345.         group HORIZ
  346.             group
  347.                 label DOUBLE '"ID:"'
  348.                 label DOUBLE '"Help:"'
  349.                 label DOUBLE '"Node:"'
  350.                 label DOUBLE '"Label:"'
  351.             endgroup
  352.             group
  353.                 string ID S1 CONTENT gid
  354.                 string ID S2 CONTENT ghelp
  355.                 string ID S3 CONTENT gnode
  356.                 string ID S4 CONTENT glabel
  357.             endgroup
  358.         endgroup
  359.         call attrsgroup
  360.     endgroup
  361.     call okgroup gobj
  362. endwindow
  363. call attrscomm gattrs
  364. return
  365.  
  366. open_ask_gadget: procedure
  367. parse arg line
  368.  
  369. MUIA_Frame =                           0x8042ac64 /* V4  i.. LONG              */
  370. Disabled =                        0x80423661 /* V4  isg BOOL              */
  371. Selected =                        0x8042654b /* V4  isg BOOL              */
  372. Weight =                          0x80421d1f /* V4  i.. WORD              */
  373.  
  374. TRUE = 1
  375. FALSE = 0
  376.  
  377. parse var line obj args
  378.  
  379. gobj = insert(obj,'',pos(obj,line)-1)
  380. if index(strip(args),'ID') = 1 then parse var args 'ID 'gid args
  381. else gid = ''
  382. if index(args,'COMMAND') > 0 then parse var args 'COMMAND """'gcommand'"""' args
  383. else gcommand = ''
  384. parse var args 'PORT 'gport .,'HELP """'ghelp'"""' .,'NODE 'gnode .,'ICON "'gicon'"' .,'PICT "'gpict'"' .,'ATTRS 'gattrs 'LABEL' .,'LABEL "'glabel'"'
  385.  
  386. window ID SET TITLE '"Object"' COMMAND '"build:set_object ['gobj']"'
  387.     group REGISTER LABELS '"Options,Image,Attributes"'
  388.         group HORIZ
  389.             group
  390.                 label DOUBLE '"ID:"'
  391.                 cycle ID L1 LABELS '"Press,App,Drop"' ATTRS Weight 0
  392.                 label DOUBLE '"Port:"'
  393.                 label DOUBLE '"Help:"'
  394.                 label DOUBLE '"Node:"'
  395.                 label DOUBLE '"Label:"'
  396.             endgroup
  397.             group
  398.                 string ID S1 CONTENT gid
  399.                 popasl ID S2 CONTENT gcommand
  400.                 string ID S3 CONTENT gport
  401.                 string ID S4 CONTENT ghelp
  402.                 string ID S5 CONTENT gnode
  403.                 string ID S6 CONTENT glabel
  404.             endgroup
  405.         endgroup
  406.         group
  407.             space
  408.             group HORIZ
  409.                 space HORIZ
  410.                 group ID GIMG
  411.                     switch ID AIMG ATTRS MUIA_Frame 0
  412.                 endgroup
  413.                 space HORIZ
  414.             endgroup
  415.             space
  416.             popasl ID S7 COMMAND '"build:ask_comm SET %s"'
  417.             group HORIZ
  418.                 cycle ID L2 COMMAND '"build:ask_comm IMAGE"' LABELS '"Icon,Picture,None"' ATTRS Weight 0
  419.                 space HORIZ
  420.                 group HORIZ
  421.                     label SINGLE '"Transparent:"'
  422.                     if index(args,'TRANS') ~= 0 then check ID C1 COMMAND '"build:ask_comm SET"' ATTRS Selected TRUE
  423.                     else check ID C1 COMMAND '"build:ask_comm SET"' ATTRS Selected FALSE
  424.                 endgroup
  425.             endgroup
  426.         endgroup
  427.         call attrsgroup
  428.     endgroup
  429.     call okgroup gobj
  430. endwindow
  431. switch ID AIMG APP COMMAND '"build:ask_comm SET %s"'
  432. if index(line,'APP') ~= 0 then cycle ID L1 LABEL '"App"'
  433. else if index(line,'DROP') ~= 0 then cycle ID L1 LABEL '"Drop"'
  434. select
  435.     when gicon ~= '' then do
  436.         check ID C1 ATTRS Disabled TRUE
  437.         cycle ID L2 LABEL 'Icon'
  438.         popasl ID S7 CONTENT gicon
  439.         call 'build:ask_comm' SET gicon
  440.     end
  441.     when gpict ~= '' then do
  442.         cycle ID L2 LABEL 'Picture'
  443.         popasl  ID S7 CONTENT gpict
  444.         call 'build:ask_comm' SET gpict
  445.     end
  446.     otherwise do
  447.         check ID C1 ATTRS Disabled TRUE
  448.         cycle ID L2 LABEL 'None'
  449.     end
  450. end
  451. call attrscomm gattrs
  452. return
  453.  
  454. open_ask_image: procedure
  455. parse arg line
  456.  
  457. MUIA_Frame =                           0x8042ac64 /* V4  i.. LONG              */
  458. Weight =                          0x80421d1f /* V4  i.. WORD              */
  459.  
  460. parse var line obj args
  461.  
  462. gobj = insert(obj,'',pos(obj,line)-1)
  463. if index(strip(args),'ID') = 1 then parse var args 'ID 'gid args
  464. else gid = ''
  465. if index(args,'COMMAND') > 0 then parse var args 'COMMAND """'gcommand'"""' args
  466. else gcommand = ''
  467. parse var args 'PORT 'gport .,'HELP """'ghelp'"""' .,'NODE 'gnode .,'SPEC "'gspec':'gimage'"' .,'STRINGS """'gstring'"""' .,'ATTRS 'gattrs
  468.  
  469. window ID SET TITLE '"Object"' COMMAND '"build:set_object ['gobj']"'
  470.     group REGISTER LABELS '"Options,Image,Attributes"'
  471.         group HORIZ
  472.             group
  473.                 label DOUBLE '"ID:"'
  474.                 label DOUBLE '"Command:"'
  475.                 label DOUBLE '"Port:"'
  476.                 label DOUBLE '"Help:"'
  477.                 label DOUBLE '"Node:"'
  478.                 label DOUBLE '"Strings:"'
  479.             endgroup
  480.             group
  481.                 string ID S1 CONTENT gid
  482.                 popasl ID S2 CONTENT gcommand
  483.                 string ID S3 CONTENT gport
  484.                 string ID S4 CONTENT ghelp
  485.                 string ID S5 CONTENT gnode
  486.                 string ID S6 CONTENT gstring
  487.             endgroup
  488.         endgroup
  489.         group
  490.             space
  491.             group HORIZ
  492.                 space HORIZ
  493.                 group ID GIMG
  494.                     image ID AIMG ATTRS MUIA_Frame 0
  495.                 endgroup
  496.                 space HORIZ
  497.             endgroup
  498.             space
  499.             group HORIZ
  500.                 cycle ID R1 COMMAND '"build:ask_comm ISET"' ATTRS Weight 0 LABELS '0,1,2,3,4,5,6'
  501.                 label DOUBLE ':'
  502.                 poplist ID S7 COMMAND '"build:ask_comm ISET"' LABELS 'ArrowUp,ArrowDown,ArrowLeft,ArrowRight,CheckMark,RadioButton,Cycle,PopUp,PopFile,PopDrawer,PropKnob,Drawer,HardDisk,Disk,Chip,Volume,Network,Assign,TapePlay,TapePlayBack,TapePause,TapeStop,TapeRecord,SliderKnob,TapeUp,TapeDown'
  503.             endgroup
  504.         endgroup
  505.         call attrsgroup
  506.     endgroup
  507.     call okgroup gobj
  508. endwindow
  509. if gimage = '' then do
  510.     gspec = 6
  511.     gimage = 15
  512. end
  513. cycle ID R1 LABEL gspec
  514. call 'build:ask_comm' ISET gimage
  515. call attrscomm gattrs
  516. return
  517.  
  518. open_ask_cycle: procedure
  519. parse arg line
  520.  
  521. parse var line obj args
  522.  
  523. gobj = insert(obj,'',pos(obj,line)-1)
  524. if index(strip(args),'ID') = 1 then parse var args 'ID 'gid args
  525. else gid = ''
  526. if index(args,'COMMAND') > 0 then parse var args 'COMMAND """'gcommand'"""' args
  527. else gcommand = ''
  528. parse var args 'PORT 'gport .,'HELP """'ghelp'"""' .,'NODE 'gnode .,'LABELS """'glabel'"""' .,'ATTRS 'gattrs
  529.  
  530. window ID SET TITLE '"Object"' COMMAND '"build:set_object ['gobj']"'
  531.     group REGISTER LABELS '"Options,Attributes"'
  532.         group HORIZ
  533.             group
  534.                 label DOUBLE '"ID:"'
  535.                 label DOUBLE '"Command:"'
  536.                 label DOUBLE '"Port:"'
  537.                 label DOUBLE '"Help:"'
  538.                 label DOUBLE '"Node:"'
  539.                 label DOUBLE '"Labels:"'
  540.             endgroup
  541.             group
  542.                 string ID S1 CONTENT gid
  543.                 popasl ID S2 CONTENT gcommand
  544.                 string ID S3 CONTENT gport
  545.                 string ID S4 CONTENT ghelp
  546.                 string ID S5 CONTENT gnode
  547.                 string ID S6 CONTENT glabel
  548.             endgroup
  549.         endgroup
  550.         call attrsgroup
  551.     endgroup
  552.     call okgroup gobj
  553. endwindow
  554. call attrscomm gattrs
  555. return
  556.  
  557. open_ask_string: procedure
  558. parse arg line
  559.  
  560. parse var line obj args
  561.  
  562. gobj = insert(obj,'',pos(obj,line)-1)
  563. if index(strip(args),'ID') = 1 then parse var args 'ID 'gid args
  564. else gid = ''
  565. if index(args,'COMMAND') > 0 then parse var args 'COMMAND """'gcommand'"""' args
  566. else gcommand = ''
  567. parse var args 'PORT 'gport .,'HELP """'ghelp'"""' .,'NODE 'gnode .,'LABELS """'glabels'"""' .,'ATTRS 'gattrs 'CONTENT' .,'CONTENT "'glabel'"'
  568.  
  569. window ID SET TITLE '"Object"' COMMAND '"build:set_object ['gobj']"'
  570.     group REGISTER LABELS '"Options,Attributes"'
  571.         group HORIZ
  572.             group
  573.                 label DOUBLE '"ID:"'
  574.                 label DOUBLE '"Command:"'
  575.                 label DOUBLE '"Port:"'
  576.                 label DOUBLE '"Help:"'
  577.                 label DOUBLE '"Node:"'
  578.                 label DOUBLE '"Content:"'
  579.                 if obj = 'poplist' then label DOUBLE '"Labels:"'
  580.             endgroup
  581.             group
  582.                 string ID S1 CONTENT gid
  583.                 popasl ID S2 CONTENT gcommand
  584.                 string ID S3 CONTENT gport
  585.                 string ID S4 CONTENT ghelp
  586.                 string ID S5 CONTENT gnode
  587.                 string ID S6 CONTENT glabel
  588.                 if obj = 'poplist' then string ID S7 CONTENT glabels
  589.             endgroup
  590.         endgroup
  591.         call attrsgroup
  592.     endgroup
  593.     call okgroup gobj
  594. endwindow
  595. call attrscomm gattrs
  596. return
  597.  
  598. open_ask_slider: procedure
  599. parse arg line
  600.  
  601. parse var line obj args
  602.  
  603. gobj = insert(obj,'',pos(obj,line)-1)
  604. if index(strip(args),'ID') = 1 then parse var args 'ID 'gid args
  605. else gid = ''
  606. if index(args,'COMMAND') > 0 then parse var args 'COMMAND """'gcommand'"""' args
  607. else gcommand = ''
  608. parse var args 'PORT 'gport .,'HELP """'ghelp'"""' .,'NODE 'gnode .,'ATTRS 'gattrs
  609.  
  610. window ID SET TITLE '"Object"' COMMAND '"build:set_object ['gobj']"'
  611.     group REGISTER LABELS '"Options,Attributes"'
  612.         group HORIZ
  613.             group
  614.                 label DOUBLE '"ID:"'
  615.                 label DOUBLE '"Command:"'
  616.                 label DOUBLE '"Port:"'
  617.                 label DOUBLE '"Help:"'
  618.                 label DOUBLE '"Node:"'
  619.             endgroup
  620.             group
  621.                 string ID S1 CONTENT gid
  622.                 popasl ID S2 CONTENT gcommand
  623.                 string ID S3 CONTENT gport
  624.                 string ID S4 CONTENT ghelp
  625.                 string ID S5 CONTENT gnode
  626.             endgroup
  627.         endgroup
  628.         call attrsgroup
  629.     endgroup
  630.     call okgroup gobj
  631. endwindow
  632. call attrscomm gattrs
  633. return
  634.  
  635. open_ask_list: procedure
  636. parse arg line
  637.  
  638. Selected =                        0x8042654b /* V4  isg BOOL              */
  639. Weight =                          0x80421d1f /* V4  i.. WORD              */
  640. TRUE = 1
  641. FALSE = 0
  642.  
  643. parse var line obj args
  644.  
  645. gobj = insert(obj,'',pos(obj,line)-1)
  646. if index(strip(args),'ID') = 1 then parse var args 'ID 'gid args
  647. else gid = ''
  648. if index(args,'COMMAND') > 0 then parse var args 'COMMAND """'gcommand'"""' args
  649. else gcommand = ''
  650. parse var args 'PORT 'gport .,'HELP """'ghelp'"""' .,'NODE 'gnode .,'POS 'gpos .,'ATTRS 'gattrs 'STRING' .,'STRING 'gstring
  651.  
  652. window ID SET TITLE '"List Object"' COMMAND '"build:set_object ['gobj']"'
  653.     group REGISTER LABELS '"Options,Attributes"'
  654.         group HORIZ
  655.             group
  656.                 label DOUBLE '"ID:"'
  657.                 cycle ID L1 LABELS '"Press,App,Drop"' ATTRS Weight 0
  658.                 label DOUBLE '"Port:"'
  659.                 label DOUBLE '"Help:"'
  660.                 label DOUBLE '"Node:"'
  661.                 label DOUBLE '"Pos:"'
  662.                 label DOUBLE '"String:"'
  663.                 label SINGLE '"Insert:"'
  664.                 label SINGLE '"Nodup:"'
  665.                 label SINGLE '"Toggle:"'
  666.             endgroup
  667.             group
  668.                 string ID S1 CONTENT gid
  669.                 popasl ID S2 CONTENT gcommand
  670.                 string ID S3 CONTENT gport
  671.                 string ID S4 CONTENT ghelp
  672.                 string ID S5 CONTENT gnode
  673.                 string ID S6 CONTENT gpos
  674.                 string ID S7 CONTENT gstring
  675.                 group HORIZ
  676.                     group
  677.                         if index(args,'INSERT') ~= 0 then check ID C1 ATTRS Selected TRUE
  678.                         else check ID C1 ATTRS Selected FALSE
  679.                         if index(args,'NODUP') ~= 0 then check ID C2 ATTRS Selected TRUE
  680.                         else check ID C2 ATTRS Selected FALSE
  681.                         if index(args,'TOGGLE') ~= 0 then check ID C3 ATTRS Selected TRUE
  682.                         else check ID C3 ATTRS Selected FALSE
  683.                     endgroup
  684.                     space HORIZ
  685.                 endgroup
  686.             endgroup
  687.         endgroup
  688.         call attrsgroup
  689.     endgroup
  690.     call okgroup gobj
  691. endwindow
  692. if index(line,'APP') ~= 0 then cycle ID L1 LABEL '"App"'
  693. else if index(line,'DROP') ~= 0 then cycle ID L1 LABEL '"Drop"'
  694. call attrscomm gattrs
  695. return
  696.  
  697. open_ask_dirlist: procedure
  698. parse arg line
  699.  
  700. Selected =                        0x8042654b /* V4  isg BOOL              */
  701. Weight =                          0x80421d1f /* V4  i.. WORD              */
  702. TRUE = 1
  703. FALSE = 0
  704.  
  705. parse var line obj args
  706.  
  707. gobj = insert(obj,'',pos(obj,line)-1)
  708. if index(strip(args),'ID') = 1 then parse var args 'ID 'gid args
  709. else gid = ''
  710. if index(args,'COMMAND') > 0 then parse var args 'COMMAND """'gcommand'"""' args
  711. else gcommand = ''
  712. parse var args 'PORT 'gport .,'HELP """'ghelp'"""' .,'NODE 'gnode .,'PATH "'gpath'"' .,'PATTERN "'gpattern'"' .,'ATTRS 'gattrs
  713.  
  714. window ID SET TITLE '"Dirlist Object"' COMMAND '"build:set_object ['gobj']"'
  715.     group REGISTER LABELS '"Options,Attributes"'
  716.         group HORIZ
  717.             group
  718.                 label DOUBLE '"ID:"'
  719.                 cycle ID L1 LABELS '"Press,App,Drop"' ATTRS Weight 0
  720.                 label DOUBLE '"Port:"'
  721.                 label DOUBLE '"Help:"'
  722.                 label DOUBLE '"Node:"'
  723.                 label DOUBLE '"Path:"'
  724.                 label DOUBLE '"Pattern:"'
  725.                 label SINGLE '"Reread:"'
  726.                 label SINGLE '"Toggle:"'
  727.             endgroup
  728.             group
  729.                 string ID S1 CONTENT gid
  730.                 popasl ID S2 CONTENT gcommand
  731.                 string ID S3 CONTENT gport
  732.                 string ID S4 CONTENT ghelp
  733.                 string ID S5 CONTENT gnode
  734.                 string ID S6 CONTENT gpath
  735.                 string ID S7 CONTENT gpattern
  736.                 group HORIZ
  737.                     group
  738.                         if index(args,'REREAD') ~= 0 then check ID C1 ATTRS Selected TRUE
  739.                         else check ID C1 ATTRS Selected FALSE
  740.                         if index(args,'TOGGLE') ~= 0 then check ID C2 ATTRS Selected TRUE
  741.                         else check ID C2 ATTRS Selected FALSE
  742.                     endgroup
  743.                     space HORIZ
  744.                 endgroup
  745.             endgroup
  746.         endgroup
  747.         call attrsgroup
  748.     endgroup
  749.     call okgroup gobj
  750. endwindow
  751. if index(line,'APP') ~= 0 then cycle ID L1 LABEL '"App"'
  752. else if index(line,'DROP') ~= 0 then cycle ID L1 LABEL '"Drop"'
  753. call attrscomm gattrs
  754. return
  755.  
  756. open_ask_volumelist: procedure
  757. parse arg line
  758.  
  759. parse var line obj args
  760.  
  761. gobj = insert(obj,'',pos(obj,line)-1)
  762. if index(strip(args),'ID') = 1 then parse var args 'ID 'gid args
  763. else gid = ''
  764. if index(args,'COMMAND') > 0 then parse var args 'COMMAND """'gcommand'"""' args
  765. else gcommand = ''
  766. parse var args 'PORT 'gport .,'HELP """'ghelp'"""' .,'NODE 'gnode .,'ATTRS 'gattrs
  767.  
  768. window ID SET TITLE '"Volumelist Object"' COMMAND '"build:set_object ['gobj']"'
  769.     group REGISTER LABELS '"Options,Attributes"'
  770.         group HORIZ
  771.             group
  772.                 label DOUBLE '"ID:"'
  773.                 label DOUBLE '"Command:"'
  774.                 label DOUBLE '"Port:"'
  775.                 label DOUBLE '"Help:"'
  776.                 label DOUBLE '"Node:"'
  777.             endgroup
  778.             group
  779.                 string ID S1 CONTENT gid
  780.                 popasl ID S2 CONTENT gcommand
  781.                 string ID S3 CONTENT gport
  782.                 string ID S4 CONTENT ghelp
  783.                 string ID S5 CONTENT gnode
  784.             endgroup
  785.         endgroup
  786.         call attrsgroup
  787.     endgroup
  788.     call okgroup gobj
  789. endwindow
  790. call attrscomm gattrs
  791. return
  792.  
  793. open_ask_object: procedure
  794. parse arg line
  795.  
  796. Selected =                        0x8042654b /* V4  isg BOOL              */
  797. List_Format =                     0x80423c0a /* V4  isg STRPTR            */
  798. TRUE = 1
  799. FALSE = 0
  800.  
  801. parse var line obj args
  802.  
  803. gobj = insert(obj,'',pos(obj,line)-1)
  804. if index(strip(args),'ID') = 1 then parse var args 'ID 'gid args
  805. else gid = ''
  806. if index(args,'COMMAND') > 0 then parse var args 'COMMAND """'gcommand'"""' args
  807. else gcommand = ''
  808. parse var args 'PORT 'gport .,'HELP """'ghelp'"""' .,'NODE 'gnode .,'CLASS "'gclass'"' .,'TRIG 'gtrig .,'VAL 'gval .,'ATTRS 'gattrs
  809.  
  810. window ID SET TITLE '"Object"' COMMAND '"build:set_object ['gobj']"'
  811.     group REGISTER LABELS '"Options,Classes,Attributes"'
  812.         group HORIZ
  813.             group
  814.                 label DOUBLE '"ID:"'
  815.                 label DOUBLE '"Command:"'
  816.                 label DOUBLE '"Port:"'
  817.                 label DOUBLE '"Help:"'
  818.                 label DOUBLE '"Node:"'
  819.                 label DOUBLE '"Trigger:"'
  820.                 label DOUBLE '"Value:"'
  821.             endgroup
  822.             group
  823.                 string ID S1 CONTENT gid
  824.                 popasl ID S2 CONTENT gcommand
  825.                 string ID S3 CONTENT gport
  826.                 string ID S4 CONTENT ghelp
  827.                 string ID S5 CONTENT gnode
  828.                 string ID S7 CONTENT gtrig
  829.                 string ID S8 CONTENT gval
  830.             endgroup
  831.         endgroup
  832.         group
  833.             dirlist ID D1 COMMAND '"build:ask_comm CSET %s"' ATTRS List_Format '""'
  834.             group HORIZ
  835.                 group
  836.                     label DOUBLE '"Class:"'
  837.                     label SINGLE '"Boopsi:"'
  838.                 endgroup
  839.                 group
  840.                     string ID S6 CONTENT gclass
  841.                     group HORIZ
  842.                         group
  843.                             if index(args,'BOOPSI') ~= 0 then check ID C1 COMMAND '"build:ask_comm CLASS"' ATTRS Selected TRUE
  844.                             else check ID C1 COMMAND '"build:ask_comm CLASS"' ATTRS Selected FALSE
  845.                         endgroup
  846.                         space HORIZ
  847.                     endgroup
  848.                 endgroup
  849.             endgroup
  850.         endgroup
  851.         call attrsgroup
  852.     endgroup
  853.     call okgroup gobj
  854. endwindow
  855. check ID C1
  856. if result then dirlist ID D1 PATH '"SYS:Classes/Gadgets"'
  857. else dirlist ID D1 PATH '"MUI:Libs/MUI"'
  858. call attrscomm gattrs
  859. return
  860.  
  861. open_ask_generic: procedure
  862. parse arg line
  863.  
  864. window ID SET TITLE '"Generic Object"' COMMAND '"build:set_object []"'
  865.     string ID P1 CONTENT line
  866.     call okgroup gobj
  867. endwindow
  868. return
  869.  
  870. open_ask_application: procedure
  871. parse arg line
  872.  
  873. parse var line obj args
  874.  
  875. gobj = insert(obj,'',pos(obj,line)-1)
  876. parse var args 'ATTRS 'gattrs
  877.  
  878. window ID SET TITLE '"Application"' COMMAND '"build:set_object ['gobj']"'
  879.     call attrsgroup
  880.     call okgroup gobj
  881. endwindow
  882. call attrscomm gattrs
  883. return
  884.  
  885. open_ask_method: procedure
  886. parse arg line
  887.  
  888. Listview_DragType =               0x80425cd3 /* V11 isg LONG              */
  889. List_DragSortable =               0x80426099 /* V11 isg BOOL              */
  890. Listview_DragType_Immediate = 1
  891. List_Insert_Bottom = -3
  892. List_GetEntry_Active = -1
  893.  
  894. parse var line obj args
  895. gobj = insert(obj,'',pos(obj,line)-1)
  896. if index(strip(args),'ID') = 1 then parse var args 'ID 'gid args
  897. else gid = ''
  898. parse var args gattrs
  899.  
  900. window ID SET TITLE '"Method"' COMMAND '"build:set_object ['gobj']"'
  901.     group
  902.         group HORIZ
  903.             label DOUBLE '"ID:"'
  904.             string ID S1 CONTENT gid
  905.         endgroup
  906.         list ID ALST DROP COMMAND '"build:attrs MADD %s"',
  907.             ATTRS Listview_DragType Listview_DragType_Immediate,
  908.                   List_DragSortable TRUE
  909.         string COMMAND '"list ID ALST INSERT POS List_Insert_Bottom STRING %s"' PORT BUILD
  910.         group
  911.             button COMMAND '"build:attrs MLIST"' LABEL 'Method List'
  912.             button COMMAND '"build:attrs LIST"' LABEL 'Attribute List'
  913.             button COMMAND '"build:attrs VLIST"' LABEL 'Variable List'
  914.             button COMMAND '"list ID ALST POS 'List_GetEntry_Active' STRING"' PORT BUILD LABEL 'Remove'
  915.         endgroup
  916.     endgroup
  917.     call okgroup gobj
  918. endwindow
  919. list ID ALST COMMAND '"build:attrs ASKSET %s"'
  920. do while gattrs ~= ''
  921.     parse var gattrs name gattrs
  922.     list ID ALST INSERT POS List_Insert_Bottom STRING name
  923. end
  924. return
  925.  
  926. attrsgroup: procedure
  927.  
  928. List_Format =                     0x80423c0a /* V4  isg STRPTR            */
  929. List_GetEntry_Active = -1
  930.  
  931. group
  932.     list ID ALST DROP COMMAND '"build:attrs ADD %s"' ATTRS List_Format '"BAR,"',
  933.         HELP '"Drag and drop an attribute from list.\nDouble click on attribute to edit."'
  934.     string COMMAND '"build:attrs ADD %s"'
  935.     group HORIZ
  936.         button COMMAND '"build:attrs LIST"' LABEL 'Attribute List'
  937.         button COMMAND '"list ID ALST POS 'List_GetEntry_Active' STRING"' PORT BUILD LABEL 'Remove'
  938.     endgroup
  939. endgroup
  940. return
  941.  
  942. attrscomm: procedure
  943. parse arg gattrs
  944.  
  945. List_Insert_Bottom = -3
  946.  
  947. list ID ALST COMMAND '"build:attrs ASKSET %s"'
  948. do while gattrs ~= ''
  949.     parse var gattrs name value gattrs
  950.     list ID ALST INSERT POS List_Insert_Bottom STRING name',='value
  951. end
  952. return
  953.  
  954. okgroup: procedure
  955. parse arg gobj
  956.  
  957. group HORIZ
  958.     button COMMAND '"build:set_object ['gobj']"' LABEL 'OK'
  959.     space HORIZ
  960.     button COMMAND '"window ID SET CLOSE"' PORT BUILD LABEL 'CANCEL'
  961. endgroup
  962. return
  963.